package com.sh.domain.demo.api;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import com.sh.common.model.JsonModel;
import com.sh.domain.demo.dto.DemoPageDto;
import com.sh.domain.demo.dto.DemoSaveDto;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

/**
 * 
 * NOTE：测试API
 *
 * @author： king
 * @date： 2019年4月2日
 *
 */
@Api(tags="测试API")
@RequestMapping("/demo")
public interface DemoApi {

	/**
	 * 
	 * NOTE： 分页查询
	 *
	 * @author： king
	 * @date： 2019年4月2日
	 * 
	 * @param demoDto
	 * @return
	 */
	@ApiOperation(value="分页查询")
	@PostMapping("/findDemoByPage")
	public JsonModel findDemoByPage(@RequestBody DemoPageDto demoDto);
	
	/**
	 * 
	 * NOTE： 通过id查询
	 *
	 * @author： king
	 * @date： 2019年4月2日
	 * 
	 * @param id
	 * @return
	 */
	@ApiOperation(value="通过id查询")
	@PostMapping("/findDemoById")
	public JsonModel findDemoById(@RequestBody String id);
	
	/**
	 * 
	 * NOTE：保存
	 *
	 * @author： king
	 * @date： 2019年4月2日
	 * 
	 * @param demoSaveDto
	 * @return
	 */
	@ApiOperation(value="保存")
	@PostMapping("/save")
	public JsonModel save(@RequestBody DemoSaveDto demoSaveDto);
	
	/**
	 * 
	 * NOTE： 修改
	 *
	 * @author： king
	 * @date： 2019年4月2日
	 * 
	 * @param demoSaveDto
	 * @return
	 */
	@ApiOperation(value="修改")
	@PostMapping("/update")
	public JsonModel update(@RequestBody DemoSaveDto demoSaveDto);
	
	/**
	 * 
	 * NOTE： 删除
	 *
	 * @author： king
	 * @date： 2019年4月2日
	 * 
	 * @param id
	 * @return
	 */
	@ApiOperation(value="删除")
	@PostMapping("/delete")
	public JsonModel delete(@RequestBody String id);
	
	/**
	 * 
	 * NOTE： 测试读取写入excel
	 *
	 * @author： king
	 * @date： 2019年4月2日
	 * 
	 * @return
	 */
	@ApiOperation(value="测试读取写入excel")
	@GetMapping("/testExcel")
	public JsonModel testExcel();
	
	/**
	 * 
	 * NOTE： 测试上传
	 *
	 * @author： king
	 * @date： 2019年4月2日
	 * 
	 * @param file
	 * @param entity
	 * @return
	 */
	@ApiOperation(value="测试上传")
	@PostMapping("/testUpload")
	public JsonModel testUpload(@RequestParam("file")MultipartFile file, @RequestParam("entity") String entity);
	
}
